Dynamic bandwidth allocation

ABSTRACT

A method for managing bandwidth to a user. A selection of a profile is received from a plurality of profiles. The profile is selected to allocate bandwidth to a user. The selection of the profile for allocating bandwidth to the user through a connection is determined. The bandwidth is allocated to the connection in response to determining the profile provides for a bandwidth reconfiguration.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This patent application is a continuation of co-pending U.S. patentapplication Ser. No. 12/168,327, filed Jul. 7, 2008 and entitled: SYSTEMAND METHOD FOR ADJUSTING BANDWIDTH BASED ON A TIME OF DAY PROFILE, whichis incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Description of the Related Art

The use of and development of communications has grown nearlyexponentially in recent years. The growth is fueled by larger networkswith more reliable protocols and better communications hardwareavailable to service providers and consumers.

Despite the many technological advances, most users of communicationsservices are still limited by traditional service plans. In particular,users are commonly charged a flat rate for data services, such as aspecified or guaranteed amount of bandwidth. The bandwidth provided bythe communications service provider may limit the user's activities orineffectively utilize the communication service provider's network andavailable bandwidth. Current systems and services may be inefficient forboth the user and the communications service provider.

2. Brief Summary of the Invention

One embodiment provides a system and method for managing bandwidth to auser. A selection of a profile may be received from a plurality ofprofiles. The profile may be selected to allocate bandwidth to a user.The selection of the profile for allocating bandwidth to the userthrough a connection may be determined. The bandwidth may be allocatedto the connection in response to determining the profile provides for abandwidth reconfiguration.

Another embodiment provides a network edge device for managing bandwidthto one or more users. The network edge device may include a clockoperable to determine a current time. The network edge device may alsoinclude a bandwidth controller operable to determine whether thebandwidth available to a user is to be adjusted based on the currenttime and a profile. The bandwidth controller may be operable to issue acommand to adjust the bandwidth in response to the determination. Thenetwork edge device may also include an access circuit for adjusting thebandwidth available to the user through a connection in response to thecommand. The network edge device may also include cost logic operable todetermine costs incurred by the user in response to the profileimplemented by the bandwidth controller.

Yet another embodiment provides a network device for adjustingbandwidth. The network device may include a processor for executing aset of instructions and a memory in communication with the processor.The memory may be operable to store the set of instructions. The set ofinstructions may be operable to receive a selection of a profile from aplurality of profiles, the profile being selected to allocate bandwidthto a user, determine the selected profile for allocating bandwidth tothe user through a connection, allocate the bandwidth available to theconnection in response to determining the selected profile provides fora bandwidth reconfiguration, and track implementation of each of theplurality of profiles during a time period to bill the user for thebandwidth utilized during the time period.

BRIEF DESCRIPTION OF THE DRAWINGS

Illustrative embodiments of the present invention are described indetail below with reference to the attached drawing figures, which areincorporated by reference herein and wherein:

FIG. 1 is a pictorial representation of a communications environment inaccordance with an illustrative embodiment;

FIG. 2 is a block diagram of a network edge device in accordance with anillustrative embodiment;

FIG. 3 is an illustrative chart of available bandwidth compared withutilized bandwidth in accordance with an illustrative embodiment;

FIG. 4 is a flowchart of a process for establishing a time of dayprofile in accordance with an illustrative embodiment.

FIG. 5 is a flowchart of a process for adjusted bandwidth to a user inaccordance with an illustrative embodiment; and

FIG. 6 is an interface for selecting a time of day profile in accordancewith an illustrative embodiment.

DETAILED DESCRIPTION OF THE INVENTION

The illustrative embodiments provide a system and method for dynamicallyadjusting the bandwidth available to a user. In one embodiment, the usermay select from multiple time of day profiles to increase the availablebandwidth for an additional fee. In particular, the user may select atany time to expand bandwidth received during off-peak or non-peak hoursfor a small service cost. The additional bandwidth may be utilized toperform network intensive tasks, such as backups, large downloads oruploads, synchronization between offices, devices, servers or othersystems, and batch transmission or receipt jobs. Any number ofdescriptions, classifications or ratings may be used to describeutilization or availability of data services, such as peak, non-peak,and off-peak. For example, peak hours may represent maximum networktraffic, non-peak hours may specify network usage between 40 and 70percent, and off-peak hours may specify network utilization less than 40percent. However, any number of criteria or thresholds may be utilizedto classify network utilization.

FIG. 1 is a pictorial representation of a communications environment 100in accordance with an illustrative embodiment. The communicationsenvironment 100 of FIG. 1 is the system, environment, devices, andsettings utilized for data communications. In one embodiment, thecommunications environment 100 may include a data network 102, acommunications management system 104, including a network edge device106, and a utilization server 108, connection 109, a customer 110, arouter 112, and clients 114 and 116.

The data network 102 is a network and system for communicating data,packets, and other information between any number of points, individualusers, businesses, organizations or other communicating parties. Thedata network 102 may be provided by a communications service provider.The communications service provider may provide data services formultiple users or customers which may include the customer 110. The datanetwork 102 may include any number of devices, physical connections,elements or wireless systems in addition to the communicationsmanagement system 104, network edge device 106, and utilization server108.

In one embodiment, the data network 102 may provide any number of dataservices, including Internet Protcol (IP), Ethernet, digital subscriberline (DSL), ATM, Frame Relay, data over cable service interfacespecifications (DOCSIS) or other similar data connections for usersregistered to receive the service. The communications management system104 is the device or network elements that manages communications forall or a part of the data network 102. The communications managementsystem 104 may include any number of switches, servers, routers,databases, processing systems, and other elements utilized to enabledata communications for the customer 110. As illustrated herein, thecommunications management system 104 includes the network edge device106 and the utilization server 108.

The network edge device 106 is the last device or element that isintegrated with the data network 102 before connecting to a device orelement utilized by a user shown as the customer 110 in FIG. 1. Thenetwork edge device 106 is positioned on the outer-most part of the datanetwork 102 to manage bandwidth utilized or available to the customer110. The network edge device 106 may be one or more servers, routers,switches or intelligent network devices managing data flow to thecustomer 110. However, the network edge device 106 may be any devicesuitable for managing communications between a data network 102 providedby a communications service provider and the user as represented by theelements of the customer 110.

The network edge device 106 may store one or more time of day profilesfor controlling the bandwidth available to the customer 110 through therouter 112. In one embodiment, the customer 110 may select any number ofcompatible time of day profiles to be stored in the network edge device106 for implementation.

The utilization server 108 is a server configured to track the time ofday profiles utilized by the customer 110. In one embodiment, thecustomer 110 may select the time of day profile or one or more profilesto be stored in the network edge device 106 and the utilization server108. In addition to any number of other software or hardware elements,the utilization server 108 tracks the additional costs for selecting atime of day profile with expanded bandwidth available during non-peakand off-peak hours. In another embodiment, the customer 110 may pay for50 Mb of bandwidth available to the clients 114 and 116 through therouter 112 from the hours of 6:00 AM to 10:00 PM. The customer 110 mayselect to add a time of day profile that expands the bandwidth availablethrough the router to 100 Mb per second from 10:00 PM to 6:00 AM. Thecustomer 110 may utilize the additional bandwidth to send batchinformation, perform system updates, backup information or otherwiseutilize the bandwidth. In another embodiment, a database incommunication with the utilization server 108 may store the selection ofa time of day profile for implementation by the network edge device 106.The utilization server 108 may be connected to any number of billingdatabases, web servers or other invoice or billing applications orsystems in order to bill the customer 110 for the increased bandwidthavailable through the connection 109.

The customer 110 is a user of the communications service provideroperating the data network 102. The customer 110 may also be anindividual, family, organization, group or other data services customer.The customer 110 may be housed in one or more buildings and may receiveall data communications through the router 112.

The router 112 is a device configured to route data communications tothe clients 114 and 116. However, the router 112 may be a server,wireless network device or other element suitable for receiving androuting communications to the clients 114 and 116. In one embodiment,the router 112 may be a WiFi® router configured to communicate with theclients using a wireless standard or proprietary protocol. In anotherembodiment, the router 112 may be an integrated portion of a local areanetwork utilized by the customer 110.

The clients 114 and 116 are communications or computing devices operableto send and receive data communications. The clients 114 and 116represent any number of devices or elements that may communicate throughthe connection 109. For example, the clients 114 and 116 may include:laptops, personal computers, servers, wireless devices, PDAs,Blackberry®, voice over IP telephones or other similar communicationsdevices.

The connection 109 is a data connection between the customer 110 and thedata network 102. For example, the connection 109 may provide thecustomer 110 access to the Internet, any number of local area networks,private networks, virtual private networks, networks, devices or othercommunications service providers available through the connection 109.The connection 109 may be physically represented by a fiber opticconnection, category 6 cable, coaxial cable, telephone line, wirelessnetwork or other communications line connecting the network edge device106 and the router 112 which may include both large-scale andsmall-scale connections.

FIG. 2 is a block diagram of a network edge device 200 in accordancewith an illustrative embodiment. The network edge device 200 and theuser 218 are particular implementations of the network edge device 106and the customer 110 of FIG. 1, respectively. The network edge device200 may include any number of hardware, software, and firmware elementswhich may include a processor 202, a memory 204, a clock 206, abandwidth control 208, time of day profiles 212, a user interface 214,and an access circuit 216. The network edge device 200 may managebandwidth and communications for one or more individuals, groups,organizations or businesses, including a user 218.

The processor 202 is circuitry or logic enabled to control execution ofa set of instructions. The processor 202 may be a microprocessor,digital signal processor, central processing unit or other devicesuitable for controlling an electronic device including one or morehardware and software elements, executing software, instructions,programs and applications, converting and processing signals andinformation, and performing other related tasks. The different elementsof the network edge device 200 may be integrated or communicated throughleads, wires, busses, sockets, cards or other interfaces. The processor202 may be a single chip or integrated with other computing orcommunications elements. In one embodiment, the processor 202 mayfunction with the bandwidth 208 control to manage the availablebandwidth allotted to the user 218 through the access circuit.

The memory 204 is a hardware element, device or recording mediaconfigured to store data for subsequent retrieval or access at a latertime. The memory 204 may be static or dynamic memory. The memory 204 mayinclude a hard disk, random access memory, cache, removable media drive,mass storage or configuration suitable as storage for data,instructions, and information. In one embodiment, the memory 204 andprocessor 202 may be integrated. The memory may use any type of volatileor non-volatile storage techniques and mediums. In one embodiment, thememory 204 may store the current selection of a time of day profile.

The clock 206 is a device or software module for tracking and measuringthe current time. In one embodiment, the clock 206 is a stratum clockthat directly or indirectly receives a time signal indicating thecurrent time from the United States Naval Observatory or equivalentorganization. The clock 206 may be enabled to synchronize the currenttime with one or more other timekeeping elements or clocks.Additionally, the clock 206 may keep and track the current timeindependently for purposes of autonomy or as needed. The clock 206 maybe important because the different time of day profiles 212 may beinitiated to increase or decrease the available bandwidth based on thecurrent time read by the clock 206.

The time of day profiles 212 is information that controls a bandwidthavailable to the user 218 based on the time of day measured by the clock206. The time of day profiles 212 may include any number of profiles orsettings that may be selected by the user 218 and implemented by thenetwork edge device 200. For example, the user 218 may select toincrease the bandwidth available from 250 Mb to 750 Mbps from 2:00 AM to7:00 AM for a increased cost of $10.00 per day. The increased bandwidthduring this time may be used by the user 218 to perform system updates,backups or other bandwidth intensive processes or functions.

In one embodiment, the user 218 may utilize another network device incommunication with the network edge device 200 in order to make theselection of the time of day profiles 212 and receive the related costor billing information. In one embodiment, the user interface 214 mayallow the user 218 to update one or more of the time of day profiles 212via cell phone. In another embodiment, the user 218 may communicate witha billing database through a web server that allows the user 218 toupgrade the time of day profiles 212 selected for implementation by thenetwork edge device 200 using a network connection.

The user interface 214 is an interface for receiving user input. Theuser interface 214 may be a graphical user interface (GUI), interactivevoice response system, web page or other interface element or devices.The user interface 214 may be accessible using a user name, password,account number or any other identifiers that allow the user 218 toauthenticate the changes made to the time of day profiles 212. The userinterface 214 may be available through any number of computing ortelecommunications devices, including personal computers, servers,laptops, routers, wireless devices, virtual tunnels, modules or otherelements. The user interface 214 may allow the user 218 to select orchange a time of day profile at any time. For example, based on theuser's needs, a time of day profile may be immediately selected andinitiated. The user 218 may be charged for the time of day profile on anhourly, daily or monthly basis. For example, the user may be charged forthe increased expense for a time of day profile by prorating the costsfor the time period the time of day profile is selected. Alternatively,the time of day profile may be charged in day or month increments.

The bandwidth control 208 or controller is the logic or circuitry forcontrolling the bandwidth allocated to the user 218. In one embodiment,the bandwidth control 208 sends commands to the access circuit 216. Theaccess circuit 216 is the logic and circuitry that increases ordecreases the bandwidth allocated to the user 218. The access circuit216 may be connected to the user 218 through a communication line orlink. In one embodiment, the data information and packets communicatedby the user 218 are channeled through the access circuit 216.

The clock 206, bandwidth control 208, time of day profiles 212, userinterface 214, and access circuit 216 may be implemented as softwaremodules, digital logic, firmware or hardware within or external to thenetwork edge device 200 in order to manage, control, and physicallyallocate the bandwidth available to the user 218.

The access circuit 216 may utilize any number of physical layer accessmethods to allocate the bandwidth through one or more circuits,connections or other devices. For example, the access circuit 216 mayutilize TCP/IP protocols to send and receive data with the user 218.However, any standards or protocols available for data communication maybe utilized between the access circuit 216 and the user 218. Aspreviously described, information received from the user 218 may berouted through the access circuit 216 to any number of other networkdevices, trunks, communications lines or other users.

FIG. 3 is an illustrative chart of available bandwidth compared withutilized bandwidth in accordance with an illustrative embodiment. FIG. 3shows a chart 300 that may include various statistical and graphicalelements which includes traffic 302, capacity 304, and availablebandwidth 306.

The chart 300 may be utilized by a communications service provider inorder to represent traffic 302 on one or more of the service provider'snetworks. As shown, the X axis of the chart 300 represents the hours ofthe day and the time measurement. The Y axis represents the bandwidth inmegabytes per second utilized on the network.

The capacity 304 is the capacity available on the network. The capacity304 may represent various theoretical, practical or functionallimitations for the communications service provider and thecommunications service provider's customers and users.

The traffic 302 is the actual usage of the network as measured hour byhour or second by second in megabytes per second. The chart 300 isrepresentative of the network traffic and network capacity available tomany communications service providers. It is important to note thatbetween the hours of 11:00 PM and 8:00 AM, the traffic 302 decreasessubstantially to a low point at approximately 5:00 AM. In other words,during this time period the network may be said to be under utilized asindicated by the available bandwidth 306.

The available bandwidth 306 indicates bandwidth that may be used fordata communications. As a result, the communications service providermay offer one or more time of day profiles in order to increase thetraffic 302 and more effectively utilize the available bandwidth 306.For example, from 10:00 PM or 2200 hours, military time, to 2:00 AM maybe considered an non-peak time. When the network is not being fullyutilized, the time period from 2:00 AM to approximately 8:00 AM may beconsidered as off-peak times during which the network is minimallyutilized. As a result, the communications service provider may for asmall increase in costs or fees allow a user to have expanded bandwidthfrom 11:00 PM to 2:00 AM as a non-peak time. For example for anadditional $20.00 per month, the user's bandwidth may be expanded from50 Mbps to 100 Mbps.

Additionally, the user may be able to select a profile from 2:00 AM to8:00 AM that triples the bandwidth available during that time for anadditional $20.00 per month by selecting a time of day profile. Each ofthe time of day profiles or both may be purchased or selected by theuser. For example if the user selected both profiles, the user wouldincur the additional cost of $40.00 per month for double the bandwidthduring non-peak times and triple the bandwidth during off-peak times.

The expanded time of day profile may allow the communications serviceprovider to more effectively utilize the available bandwidth 306 andfurther increase profit margins and user satisfaction with the servicesand customization available. The communications service provider maymore effectively use communications lines and equipment that is alreadypurchased, leased or otherwise included as an operating expense toincrease profits and provide additional alternatives to enhance usersatisfaction with the data services provided by the communicationsservice provider.

FIG. 4 is a flowchart of a process for establishing a time of dayprofile in accordance with an illustrative embodiment. The process ofFIG. 4 may be implemented by a network device for receiving time of dayprofiles. In one embodiment, the network device may be a billing orutility server in communication with one or more user databases, billingdatabases, and other similar systems and devices.

The process may begin with the network device displaying a userinterface (step 402). The interface may be provided through a website,wireless device or other element. In one embodiment, the user interfaceis a portal generated by a web server operated by the communicationsservice provider.

Next, the network device receives user information for accessingservices and devices (step 404). The user information may includeauthentication information, such as a user name, password, accountnumber or other identifying information. The user information mayvalidate that the user is authorized to configure the services anddevices that may be configured through the user interface.

Next, the network device displays available bandwidth for each time ofday profile and an associated cost (step 406). The available bandwidthmay be displayed to the user based on the amount of bandwidth typicallyused by the user, network capacity, service level agreements relating toquality of services, dropped packets, device and network connectionlimitations, and other service guarantees. The associated cost is theprice to the user for expanding the bandwidth during the specified timeof day. For example, by selecting a particular time of day profile, anadditional cost may be incurred.

Next, the network device receives a user selection of a time of dayprofile (step 408). The user selection may be received at any time. Inone embodiment, the cost for implementing a new time of day profile maybe prorated for the portion of the month that the time of day profile isselected and implemented for the user. For example, the user may need toperform a number of backups during a particular week of the month. As aresult, an administrator authorized by the user may select one or moretime of day profiles that may increase bandwidth for the specified timeperiod. The ability to change the time of day profile on an hourly,daily or weekly basis may allow the user to have increased satisfactionwith the communications service provider.

FIG. 5 is a flowchart of a process for adjusted bandwidth to a user inaccordance with an illustrative embodiment. The process of FIG. 5 may beimplemented by a network edge device. The process may be implemented forany number of users simultaneously in order to take advantage of unusedbandwidth available on the communications service provider's network.The process may begin by determining a currently selected time of dayprofile (step 502). The time of day profile may have been previouslyelected by the user for implementation.

Next, the network edge device determines a current time (step 504). Thecurrent time may be tracked by one or more clocks of the network edgedevice or may be streamed to the network edge device from an atomicclock, stratus clock or other timekeeping device or network construct.

The network edge device determines whether the bandwidth needs to beadjusted (step 506). The determination of step 506 is made based on thecurrent time and the selected time of day profile. If the bandwidth doesnot need to be adjusted, the network edge device again determines thecurrent time (step 504).

If the network edge device determines the bandwidth does need to beadjusted in step 506, the network edge device adjusts the bandwidth(step 508). The available bandwidth may be increased or decreased basedon the stipulations and criteria of the time of day profile. For exampleat 2:00 AM, the time of day profile selected by the user may call for a50% increase in the bandwidth available to the user. However, at 7:30 AMthe time of day profile may call for a 50% reduction in the bandwidthallocated to the user. As a result, the bandwidth is adjusted inaccordance with the selection made by the user.

FIG. 6 is an interface for selecting a time of day profile in accordancewith an illustrative embodiment. The interface 600 is an illustrativeembodiment of an interface that may be presented to a user to select oneor more time of day profiles. The interface 600 is one example of agraphical user interface. The interface 600 may include sections 602,604, 606, and 608. The interface 600 may be also used by a user servicerepresentative or as a menu that may be audibly played to a user throughan interactive voice response system.

As previously described, the interface 600 may be configured to onlyallow selections of compatible profiles. For example, the profiles ofsections 602, 604, 606 may be compatible, whereas the profiles ofsections 604 and 608 may not be compatible. The profiles as shown insections 602, 604, 606, and 608 may show the time period during whichthe time of profile is activated, the increased change or availablebandwidth allocated to the user, and any increased or decreased cost tothe user for selecting that time of day profile.

As previously described, the time of day profiles may be selected at anytime based on the needs of the user. A selection of a time of dayprofile may indicate that the user is charged for that time of dayprofile during the next billing cycle. In another embodiment, the costof the selected time of day profile may be prorated for the portion ofthe billing cycle that the user actually utilized that time of dayprofile.

The previous detailed description is of a small number of embodimentsfor implementing the invention and is not intended to be limiting inscope. One of skill in this art will immediately envisage the methodsand variations used to implement this invention in other areas thanthose described in detail. The following claims set forth a number ofthe embodiments of the invention disclosed with greater particularity.

1. A method for managing bandwidth to a user, the method comprising:receiving a selection of a profile from a plurality of profiles, theprofile being selected to allocate bandwidth to a user; determining theselection of the profile for allocating bandwidth to the user through aconnection; and allocating the bandwidth to the connection in responseto determining the profile provides for a bandwidth reconfiguration. 2.The method according to claim 1, further comprising: determining acurrent time, wherein the allocating is performed utilizing bandwidthsassociated with each time of day in the profile.
 3. The method accordingto claim 1, wherein the allocating includes increasing or decreasing thebandwidth according to the profile or a bandwidth selected by the user.4. The method according to claim 1, further comprising: receiving aselection of one of the plurality of profiles from a user through aportal.
 5. The method according to claim 1, further comprising:implementing the profile in real-time in response to receiving theselection of one of the plurality of profiles with an indication toimmediately implement the one of the plurality of profiles.
 6. Themethod according to claim 1, wherein the allocating is performed by annetwork edge device for the connection, a device, or a network of theuser.
 7. The method according to claim 1, wherein the profile includesmultiple non-conflicting profiles from the plurality of profiles thatare active during a twenty four hour period.
 8. The method according toclaim 1, further comprising: increasing or decreasing costs charged to auser in response to allocating the bandwidth; and displaying the costsassociated with the plurality of profiles in response to receiving theselection.
 9. The method according to claim 8, further comprising:compiling the costs for a time period according to utilization of eachof the plurality of profiles implemented during the time period and thecosts associated with each of the plurality of profiles.
 10. The methodaccording to claim 9, further comprising: billing the user for the costsof the bandwidth allocated according to each of the plurality ofprofiles implemented during a time period.
 11. A network edge devicemanaging bandwidth to one or more users comprising: a clock operable todetermine a current time; a bandwidth controller operable to determinewhether the bandwidth available to a user is to be adjusted based on thecurrent time and a profile, the bandwidth controller operable to issue acommand to adjust the bandwidth in response to the determination; anaccess circuit for adjusting the bandwidth available to the user througha connection in response to the command; and cost logic operable todetermine costs incurred by the user in response to the profileimplemented by the bandwidth controller.
 12. The network edge deviceaccording to claim 11, further comprising: a memory for storing aplurality of profiles for the user including the profile, the profileincludes one or more time periods during which the bandwidth isadjusted.
 13. The network edge device according to claim 12, furthercomprising: an interface operable to receive a selection of one of theplurality of profiles that meet bandwidth needs of the user, theselection specifying a time for implementation of the one of theplurality of profiles.
 14. The network edge device according to claim11, wherein the interface is operable to receive a selection through webportal.
 15. The network edge device according to claim 12, wherein thecost logic displays a associated with the plurality of profiles, andwherein the cost logic bills a user for costs compiled during a timeperiod based on implementation of each of the plurality of profiles. 16.A network device for managing bandwidth to a connection comprising: aprocessor for executing a set of instructions; and a memory incommunication with the processor, the memory operable to store the setof instructions, the set of instructions are operable to: receive aselection of a profile from a plurality of profiles, the profile beingselected to allocate bandwidth to a user; determine the selected profilefor allocating bandwidth to the user through the connection; allocatethe bandwidth available to the connection in response to determining theselected profile provides for a bandwidth reconfiguration; and trackutilization of each of the plurality of profiles during a time period tobill the user for the bandwidth utilized during the time period.
 17. Thenetwork device according to claim 16, wherein the profile specifiesbandwidth increases and decreases for the bandwidth allocation, andwherein the profile includes one or more time periods during which thebandwidth is adjusted.
 18. The network device according to claim 16,wherein the bandwidth is allocated according to two or more activeprofiles from the plurality of profiles during a twenty four hourperiod.
 19. The network device according to claim 16, wherein the set ofinstructions is further operable to receive a selection of the profileor custom bandwidth selection through a portal, the selection specifyinga time to implement the profile or the custom bandwidth selection. 20.The network device according to claim 16, wherein the selection of theprofile or custom bandwidth selection is implemented in real-time inresponse to the selection including an indication to immediatelyimplement the profile or custom bandwidth selections, and wherein theallocation of the bandwidth is performed by the network device for theconnection, a device, or a network of the user.